import Cookies from 'js-cookie'

const TokenKey = 'student-management-token'

export function getToken() {
  const token = Cookies.get(TokenKey)
  console.log('getToken()返回:', token)
  return token
}

export function setToken(token) {
  console.log('setToken()被调用，token:', token)
  const result = Cookies.set(TokenKey, token, { expires: 7 }) // 7天过期
  console.log('setToken()结果:', result)
  return result
}

export function removeToken() {
  return Cookies.remove(TokenKey)
}

// 解析JWT token中的用户信息
export function parseToken(token) {
  if (!token) {
    return null
  }
  
  try {
    // JWT token格式: header.payload.signature
    const parts = token.split('.')
    if (parts.length !== 3) {
      console.error('无效的JWT token格式')
      return null
    }
    
    // 解码payload部分
    const payload = parts[1]
    // 添加padding以确保base64解码正确
    const paddedPayload = payload + '='.repeat((4 - payload.length % 4) % 4)
    const decodedPayload = atob(paddedPayload)
    const userInfo = JSON.parse(decodedPayload)
    
    // 处理中文字符编码问题
    if (userInfo.role) {
      try {
        // 尝试解码UTF-8编码的中文字符
        userInfo.role = decodeURIComponent(escape(userInfo.role))
      } catch (e) {
        // 如果解码失败，保持原值
        console.warn('角色字段解码失败，使用原值:', userInfo.role)
      }
    }
    
    console.log('从token解析的用户信息:', userInfo)
    return userInfo
  } catch (error) {
    console.error('解析JWT token失败:', error)
    return null
  }
}